Processing クリエイティブ・コーディング入門
https://gyazo.com/a608ad39ba09268c9650dceef630515c
Part1 入門編
第1章 セットアップと基本図形/色の描画
第2章 プログラミングの基本
第3章 アニメーションの基本
Part2 実践編
第4章 大量の物体を同時に操作
第5章 運動の構造的な記述
Part3 応用編
第6章 ニュートン力学でリアルな表現
意外としっかり方程式をプログラムに落とし込まれていた。
運動方程式
$ F=ma
なので、加速度を求めるときは以下で算出する
$ a=\frac{F}{m}
計算式
$ \vec{a}(t)=\frac{\vec{F}(t)}{m}
$ \vec{v}(t+1)=\vec{v}(t)+\vec{a}(t)
$ \vec{r}(t+1)=\vec{r}(t)+\vec{v}(t)
以下の力も考慮
重力
摩擦力(空気抵抗)
第7章 インタラクション
万有引力を考慮して物体を吸引するアニメーションを実装する
$ F=G \frac{Mm}{r^2}
第8章 3次元空間の表現
前章の内容から3次元にする。
Part4 メディア活用編
第9章 画像データ
第10章 ライブラリ
第11章 ビデオとサウンドデータ
Part5 外部ライブラリ活用編
第12章 controlP5: GUIでパラメータを設定
第13章 Fisica: 物理シミュレーション
onuma.icon JSで物理シミュレーションをするなら以下のようなライブラリかな?
Matter.js
LiquidFun
Tiny2D
第14章 oscP5: データ通信でアプリケーション連携
第15章 OpenCV for Processing: コンピュータビジョン
輪郭抽出やオプティカルフローをOpenCVというライブラリを使って実装する。
ただこのレベルになると画像処理の領域になってくる。